#ifndef INCLUDE_marker
#define INCLUDE_marker

#include <vector>
#include <iostream>
#include <opencv2/opencv.hpp>


using namespace cv;
using namespace std;

class Marker_J
{
public:
  static Mat rotate(Mat in);
  static int hammDistMarker(Mat bits);
  static int mat2id(const cv::Mat &bits);
  static int getMarkerId(Mat &in,int &nRotations);

public:
  //Id of the marker
  int id;
  vector<Point2f> points;
  Point3f camPos;
  Point3f camAngles;
  //Helper function to draw the marker contour over the image
  void drawContour(Mat& image,Scalar color = CV_RGB(0,250,0)) const;
};

#endif
